#pragma once

#include <rtl/base.h>

typedef enum
{
    AES_SW_KEY = 0,
    AES_HW_KEY = 1,
    AES_HW_WRAP_KE = 2
} AES_KEY_ID;

typedef enum
{
    AES_KEY_128 = 16,
    AES_KEY_192 = 24,
    AES_KEY_256 = 32
} AES_KEY_TYPE;

typedef enum
{
    AES_DEC = 0,
    AES_ENC = 1
} AES_OPS;

typedef enum
{
    AES_ECB_MODE = 0,
    AES_CBC_MODE = 1
} AES_MODE;

VOID HaccHwInit();
VOID HaccSetAesMode(AES_MODE Mode);
VOID HaccUploadKey(AES_KEY_ID Id, AES_KEY_TYPE Length, PVOID Key);